2024.4.3 controlとfreqsの比較
code:p01.py
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
import control as ct
import control.matlab as ctmt
omega_span = np.logspace(-2, 4, 1000)
T = 0.1
K = 1
omega1, y1 = signal.freqs(K, T, 1, worN=omega_span) y2, phase2, omega2 = ctmt.bode(g2, omega_span)
plt.clf()
plt.subplot(211)
plt.semilogx(omega1, 20*np.log10(abs(y1)), label='by scipy')
plt.grid()
plt.legend()
plt.subplot(212)
plt.semilogx(omega2, 20*np.log10(abs(y2)), label='by ct')
plt.grid()
plt.legend()
plt.show()
https://scrapbox.io/files/660cfcfa4a971c00237c463a.png
二次遅れ系の場合
code:p02.py
from scipy import signal
import numpy as np
import matplotlib.pyplot as plt
import control as ct
import control.matlab as ctmt
omega_span = np.logspace(-2, 4, 1000)
omg_n = 1
zeta = 0.01
K = 1
y2, phase2, omega2 = ctmt.bode(g2, omega_span)
plt.clf()
plt.subplot(211)
plt.semilogx(omega1, 20*np.log10(abs(y1)), label='by scipy')
plt.grid()
plt.legend()
plt.subplot(212)
plt.semilogx(omega2, 20*np.log10(abs(y2)), label='by ct')
plt.grid()
plt.legend()
plt.show()
https://scrapbox.io/files/660cffd16e7a490024dcc9b2.png